# 基础柱状图
"""
通过bar构建柱状图
# 导包模块
from pyecharts.charts import Bar
from pyecharts.options import LabelOpts

# 构建柱状图对象
bar = Bar()
# 添加x轴数据
bar.add_xaxis(["中国", '美国', "英国"])
# 添加y轴数据
bar.add_yaxis("GDP", [30, 20, 10], label_opts=LabelOpts(position="right"))
# 添加的label_opts是为了让数值标签在右侧

# 反转x,y轴
bar.reversal_axis()


# 绘图
bar.render("基础柱状图.html")
"""


# 基础时间线柱状图绘制
"""
Timeline()-时间线
柱状图描述的是分类数据，回答的是每一个分类中「有多少?」这个问题，这是柱状图的主要特点,同时柱状图很难动态的描述一个
趋势性的数据，这里pyecharts为我们提供了一种解决方案-时间线

如果说一个Bar、Line对象是一张图表的话，时间线就是创建一个维的x轴，轴上每一个点就是一个图表对象

# 导包
from pyecharts.charts import Bar, Timeline
from pyecharts.options import LabelOpts  # 设置y轴显示在右侧
from pyecharts.globals import ThemeType  # 导入柱状图主题类型的包

# 构建bar1柱状图对象
bar1 = Bar()

# 添加x轴、y轴数据
bar1.add_xaxis(["中国", '美国', "英国"])
bar1.add_yaxis("GDP", [30, 20, 10], label_opts=LabelOpts(position="right"))
# 反转x,y轴
bar1.reversal_axis()


# 构建bar2柱状图对象
bar2 = Bar()
# 添加x轴、y轴数据
bar2.add_xaxis(["中国", '美国', "英国"])
bar2.add_yaxis("GDP", [50, 30, 10], label_opts=LabelOpts(position="right"))
# 反转x,y轴
bar2.reversal_axis()

# 构建时间线对象
timeline = Timeline({"theme": ThemeType.LIGHT})

# 在timeline对象中添加bar柱状图对象
timeline.add(bar1, "2021年GDP")
timeline.add(bar2, "2022年GDP")

# 自动播放
timeline.add_schema(
    play_interval=1000,       # 自动播放的时间间隔，单位毫秒
    is_timeline_show=True,   # 是否在自动播放的时候，是示时间线
    is_auto_play=True,       # 是否自动播放
    is_loop_play=True        # 是否循环自动播
)

# 时间线设置主题（在构建时间线对象的时候设置即可）

# 绘图，绘图是用时间线对象绘图，而不是bar对象
timeline.render("基础柱状图.html")
"""



# GDP动态柱状图绘制
"""
列表的sort方法
使用方式:
列表.sort(key=选择排序依据的函数)reverse=TruelFalse)
参数key，是要求传入一个函数，表示将列表的每一个元素都传入函数中，返回排序的依据
参数reverse，是否反转排序结果，True表示降序，False表示升序
"""
my_list = [["a", 33], ["b", 55], ["c", 11]]
# def choose_sort_key(element):
#     return element[0]

# my_list.sort(key = choose_sort_key, reverse = False)
# print(my_list)

my_list.sort(key=lambda element: element[0], reverse=True)
